A certified implementation of ML with structural polymorphism and recursive types

نویسنده

  • Jacques Garrigue
چکیده

The type system of Objective Caml has many unique features, which make ensuring the correctness of its implementation difficult. One of these features is structurally polymorphic types, such as polymorphic object and variant types, which have the extra specificity of allowing recursion. We implemented in Coq a certified interpreter for Core ML extended with structural polymorphism and recursion. Along with type soundness of evaluation, soundness and principality of type inference, and correctness of a stack-based interpreter, are also proved.1

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

A Certified Interpreter for ML with Structural Polymorphism

The type system of Objective Caml has many unique features, which make ensuring the correctness of its implementation difficult. One of these features is structurally polymorphic types, such as polymorphic object and variant types, which have the extra specificity of allowing recursion. I implemented in Coq a certified interpreter for Core ML extended with structural polymorphism and recursion....

متن کامل

A Certified Implementation of ML with Structural Polymorphism

The type system of Objective Caml has many unique features, which make ensuring the correctness of its implementation difficult. One of these features is structurally polymorphic types, such as polymorphic object and variant types, which have the extra specificity of allowing recursion. We implemented in Coq a certified interpreter for Core ML extended with structural polymorphism and recursion...

متن کامل

Syntactic Type Polymorphism for Recursive Function De nitions

Higher-order programming languages, such as ML, permit a exible programming style by using compile-time type inference together with the concept of type polymorphism, which allows to specify the types of generic functions. In ML, however, recursive functions must always be given a unique (monomorphic) type inside their deenition. Giving polymorphic types to recursive functions is known as the p...

متن کامل

Structural Polymorphism

This paper describes structural polymorphism, a new form of type polymorphism appropriate to functional languages featuring user-defined algebraic data types (e.g., Standard ML, Haskell and Miranda1). The approach extends the familiar notion of parametric polymorphism by allowing the definition of functions which are generic with respect to data structures as well as to individual types. For ex...

متن کامل

Subtyping Recursive Types in Kernel Fun, Preliminary Draft

The problem of deening and checking a subtype relation between recursive types was studied in AC93] for a rst order type system, but for second order systems, which combine subtyping and parametric polymorphism, only negative results are known Ghe93b]. This paper studies the problem of subtype checking for recursive types in system kernel Fun, a typed-calculus with subtyping and bounded second ...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

برای دانلود متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

عنوان ژورنال:
  • Mathematical Structures in Computer Science

دوره 25  شماره 

صفحات  -

تاریخ انتشار 2015